草庐IT

Swift 枚举评估

全部标签

c# - 在编辑器中对枚举项进行排序

有人知道在代码编辑器中对枚举项进行排序的方法吗,例如使用resharper或其他VS插件(即按字母顺序或整数值对项目排序)?在一个项目中,我有一些巨大的枚举,里面有未排序的标签,对它们进行排序有助于提高可读性。编辑:只是指出,因为很多人都提到过这一点,所以我完全知道在编译时分配给枚举项的“自动值”,如果它们没有明确的值的话。为了更清楚一点,举两个例子:publicenumColors{//////Yellowcolor///Yellow,//////Greencolor///Green,//////Bluecolor///Blue,//////Redcolor///Red}->我们可能

c# - 什么是 C# 的良好读取、评估、打印、循环实现?

这个问题在这里已经有了答案:C#Console/CLIInterpreter?(17个答案)关闭7年前。一些编程语言实现提供了一个读取、计算、打印循环交互外壳,允许程序员计算表达式和程序片段,并以增量、交互的方式进行编程。您使用过并喜欢C#REPL的哪些实现?如果有一个也可以与VisualStudio集成的,那就太好了。我找到了,但没有尝试过,MonoC#REPL和DonBox'sC#REPL

c# - 从枚举值列表创建可检查上下文菜单的通用方法

我想创建一个上下文菜单,其中一个menuItem将是一个可以在枚举值中进行选择的子菜单。我不想将枚举中的任何值硬编码到xaml中,因为我希望任何枚举值更改都会自动反射(reflect)在UI中,而无需任何干预。我希望我的菜单是一个没有任何伪影的常规上下文菜单(我的意思是外观应该与常规ContextMenu一样)。我尝试了很多方法都没有成功。我的每个试验总是遗漏一些东西,但主要遗漏的部分似乎是一个可以绑定(bind)到某些东西的converterParamter。我是红色的:CreatingacheckablecontextmenufromalistofenumvaluesWPFMult

c# - C# 中的 lambda 如何绑定(bind)到 foreach 中的枚举数?

我刚刚遇到了最意想不到的行为。我确信它以这种方式工作是有充分理由的。谁能帮忙解释一下?考虑这段代码:varnums=newint[]{1,2,3,4};varactions=newList>();foreach(varnuminnums){actions.Add(()=>num);}foreach(varnuminnums){varx=num;actions.Add(()=>x);}foreach(varactioninactions){Debug.Write(action()+"");}输出结果让我有点意外:44441234显然,lambda引用枚举器的方式有问题。在foreach的

c# - 是否可以创建分层枚举?

我想创建一个分层枚举来表示我可以作为参数传递的类型。数据结构如下:enumCars{Ford{Corsair,Cortina,Galaxy,GT},Ferrari{Testarossa,California,Enzo},...}我希望调用具有以下签名的函数:publicvoidBuildCar(Carscar);像这样:BuildCar(Cars.Ferrari.Enzo);基本上,我想在类型中强制执行汽车/制造商关系。 最佳答案 我考虑过用扩展和/或ICustomEnum东西来回答这个问题。然后我想-以下内容真的有那么糟糕吗?:-

c# - 我可以等待我用生成器创建的可枚举吗?

假设我有一个异步获取的整数序列。asyncTaskGetI(inti){returnawaitTask.Delay(1000).ContinueWith(x=>i);}我想在该序列上创建一个生成器,如果该序列是同步的,我会这样做:IEnumerableMethod(){for(vari=0;i所以,我想这个类比是让生成器异步并从中产生:asyncTask>Method(){for(vari=0;ii);}}这行不通,因为一个带有yield的方法必须返回IEnumerable更有意义的替代方案是IEnumerable>但自async以来将无法编译方法必须返回Tasks或无效。现在,我意识

c# - 为什么编译器为 "yield"生成的枚举器不是结构?

compiler-generatedimplementation的IEnumerator/IEnumerable对于yieldmethods和getters似乎是一个类,因此分配在堆上。但是,其他.NET类型,例如List具体返回struct枚举数以避免无用的内存分配。通过对C#深入帖子的快速概述,我看不出为什么这里也不是这种情况。我错过了什么吗? 最佳答案 Servy正确回答了您的问题——您在评论中自己回答的问题:Ijustrealizedthatsincethereturntypeisaninterface,itwouldget

c# - ASP.net MVC 中枚举的下拉列表中的选定项

抱歉,如果这是一个骗局,我的搜索没有任何结果。我正在使用以下方法为枚举类型生成下拉列表(从此处提取:http://addinit.com/?q=node/54):publicstaticstringDropDownList(thisHtmlHelperhelper,stringname,Typetype,objectselected){if(!type.IsEnum)thrownewArgumentException("Typeisnotanenum.");if(selected!=null&&selected.GetType()!=type)thrownewArgumentExcep

c# - Enum.GetNames() 导致带有负枚举常量的意外顺序

我有以下枚举定义(在C#中):publicenumELogLevel{General=-1,//Shouldonlybeusedindrop-downboxinMerliniaAdministratorlogsettingsAll=0,//Shouldnotbeusedasalevel,onlyasathreshold,effectivelysameasTraceTrace=1,Debug=2,Info=3,Warn=4,Error=5,Fatal=6,Off=7//Shouldnotbeusedasalevel,onlyasathreshold}现在,当我对这种类型执行Enum.Ge

C# - Web API - 将枚举序列化为带空格的字符串

我的问题很简单,但比其他有关将枚举类型序列化为字符串的问题更具体一些。考虑以下代码:usingNewtonsoft.Json;usingNewtonsoft.Json.Converters;publicenumMyEnum{TypeOne,TypeTwo,TypeThree}publicclassFoo{[JsonConverter(typeof(StringEnumConverter))]publicMyEnumTypes{get;set;}}当WebAPIController发送序列化的Foo对象时,它们可能看起来像这样:{"Type":"TypeTwo"}我的问题:是否可以将序列